//All the states the GAME can be in
enum eGameStates
{
	GAME_INIT_STATE,
	GAME_INTRO_STATE,
	GAME_MENU_STATE,
	GAME_UPDATE_STATE,
	GAME_QUIT_STATE,
	GAME_NULL_STATE
};

//The values returned by a function to determine what happened
enum FunctionReturn
{
	//Worked
	SUCCEED,
	//Could not execute properly
	FAIL,
	//Example
	// allocated new data but it failed
	MISSING_DATA,
	//Example
	// an argument was passed in but held bad data
	INVALID_DATA,
	//Anything else
	UNKNOWN
};

//Used by the timer to check time and update it
enum eTimeCommands
{
	SET_TIME,
	CHECK_TIME,
	NULL_TIME
};

//Win/Lose control statements
enum eWinLoss
{
	YES,
	IF
};

//All the tile types
// used to index textures and object types
enum eTileType
{
	TILE_ONE,
	TILE_TWO,
	TILE_THREE,
	TILE_FOUR,
	TILE_FIVE,
	TILE_SIX,
	TILE_SEVEN,
	TILE_NULL
};

//All the inventory materials
enum eInvMaterials
{
	MAT_IRON,
	MAT_SULFUR,
	MAT_GEM,
	MAT_NULL
};

//All materials
//Index for textures
enum eTextureIndex
{
	ROCK_ONE,
	ROCK_TWO,
	ROCK_THREE,
	ROCK_FOUR,
	ROCK_FIVE,
	ROCK_SIX,
	ROCK_SEVEN,
	MAIN_MENU,
	INGAME_MENU_TEX,
	PRESSED,
	UNPRESSED,
	PLAYER_ONE,
	PLAYER_TWO,
	WATER_START,
	WATER_MIDDLE,
	WATER_END,
	TRACK_START,
	TRACK_MIDDLE,
	TRACK_END,
	CARD,
	TEXT_NULL
};

//Used to differentiate between the 3 types of spaces
enum eSpaceType
{
	NORMAL,
	GEYSER_START,
	GEYSER_END,
	MINECART_START,
	MINECART_END,
	BLANK
};

//Used to determine the type of item
enum eItemType
{
	TNT_ITEM,
	PICKAXE_ITEM,
	SIZE_ITEM
};

//Used to differentiate between text boxes
enum eTextType
{
	START,
	QUIT,
	IRON,
	SULFUR,
	GEM,
	FORFIET,
	UPDATE_TEXT,
	NULL_TEXT
};